﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace SPMS.Utility
{
    /// <summary>
    /// 路径处理辅助类
    /// </summary>
    /// <remarks>提供了路径处理的公共辅助方法</remarks>
    /// <history>
    /// [zanezeng]               2010/1/15 11:32    创建
    /// </history>
    public static class PathUtility
    {
        #region ---Public Method

        /// <summary>
        /// 生成给定路径字符串的绝对路径
        /// </summary>
        /// <param name="path">要生成绝对路径的路径字符串</param>
        /// <returns>
        /// 根据定路径字符串的绝对路径路径字符串。
        /// 如果给定的路径字符串为绝对路径，则直接返回原路径字符串。
        /// 如果给定的路径字符串为相对路径，则以应用程序的根路径作为基路径生成绝对路径。
        /// </returns>
        /// <remarks></remarks>
        /// <exception cref="ArgumentNullException"><paramref name="path"/>为<c>null</c>引用。</exception>
        /// <exception cref="ArgumentException"><paramref name="path"/>中包含一个或者多个无效字符。</exception>
        /// <history>
        /// [zanezeng]               2010/1/15 11:35    创建
        /// </history>
        public static string MakeRootedPath( string path )
        {
            //判断给定的路径是否为绝对路径
            if (Path.IsPathRooted( path ))
            {
                //如果给定的路径是绝对路径，则直接返回原路径
                return path;
            }

            //生成绝对路径
            return Path.Combine( AppDomain.CurrentDomain.SetupInformation.ApplicationBase, path );
        }

        #endregion
    }
}
